package com.blood.modules.system.service;

import com.blood.core.config.mybatisplus.ICommonService;
import com.blood.core.resp.PageResult;
import com.blood.core.resp.ResponseResult;
import com.blood.modules.system.dto.req.SysOrgSchemaPageReq;
import com.blood.modules.system.dto.req.SysOrgSchemaReq;
import com.blood.modules.system.dto.req.SysOrgSchemaSaveReq;
import com.blood.modules.system.dto.resp.SysOrgSchemaInfoResp;
import com.blood.modules.system.dto.resp.SysOrgSchemaPageResp;
import com.blood.modules.system.model.SysOrgSchema;

import java.util.List;


/**
 * 组织架构Service接口
 *
 * @author daoren
 * @date 2022-05-12 09:14:45
 */
public interface ISysOrgSchemaService extends ICommonService<SysOrgSchema> {

    /**
     * 分页查询
     *
     * @param req 查询参数
     * @return 分页列表信息
     */
    ResponseResult<PageResult<SysOrgSchemaPageResp>> pageList(SysOrgSchemaPageReq req);

    /**
     * 获取列表
     *
     * @param req 查询参数
     * @return 列表信息
     */
    List<SysOrgSchema> queryList(SysOrgSchemaReq req);

    /**
     * 获取列表
     *
     * @param idList 查询参数
     * @return 列表信息
     */
    List<SysOrgSchema> queryList(List<String> idList);

    /**
     * 添加
     *
     * @param req
     * @return 结果
     */
    ResponseResult<Void> saveInfo(SysOrgSchemaSaveReq req);

    /**
     * 更新信息
     *
     * @param req
     * @return 结果
     */
    ResponseResult<Void> updateInfo(SysOrgSchemaSaveReq req);
    /**
     * 修改账号状态
     *
     * @param id 用户id
     * @return 修改结果
     */
    ResponseResult<Void> updateStatus(String id);

    /**
     * 根据id获取详情
     *
     * @param id
     * @return 详情
     */
    ResponseResult<SysOrgSchemaInfoResp> findDetailById(String id);
    /**
     * 根据id删除数据
     *
     * @param id 组织id
     * @return 删除结果
     */
    ResponseResult<Void> deleted(String id);

    /**
     * 查询组织结构id集合（包括自己和子集）
     *
     * @param orgId
     * @return 组织id集合
     */
    List<String> queryMyOrSubList(String orgId);
}
